头条项目缓存与存储设计

缓存设计

1 User Cache

用户资料

key 类型 说明 举例
user:{user_id}:profile string user_id用户的数据缓存,包括手机号、用户名、头像

用户扩展资料

key 类型 说明 举例
user:{user_id}:profilex string user_id用户的性别 生日

用户状态

key 类型 说明 举例
user:{user_id}:status string user_id用户是否可用
key 类型 说明 举例
user:{user_id}:following zset user_id的关注用户 [{user_id, update_time}]
key 类型 说明 举例
user:{user_id}:fans zset user_id的粉丝用户 [{user_id, update_time}]
key 类型 说明 举例
user:{user_id}:art zset user_id的文章 [{article_id, create_time}]

2 Comment Cache

key 类型 说明 举例
art:{article_id}:comm zset article_id文章的评论数据缓存,值为comment_id [{comment_id, create_time}]
comm:{comment_id}:reply zset comment_id评论的评论数据缓存,值为comment_id [{'comment_id', create_time}]
comm:{comment_id} string 缓存的评论数据

3 Article Cache

key 类型 说明 举例
ch:all string 所有频道
user:{user_id}:ch string 用户频道
ch:{channel_id}:art:top zset 置顶文章 [{article_id, sequence}]
art:{article_id}:info string 文章的基本信息
art:{article_id}:detail string 文章的内容

4 Announcement Cache

key 类型 说明 举例
announce zset [{'json data', announcement_id}]
announce:{announcement_id} string 'json data'

持久存储设计

1 阅读历史

key 类型 说明 举例
user:{user_id}:his:reading zset [{article_id, read_time}]

2 搜索历史

key 类型 说明 举例
user:{user_id}:his:searching zset [{keyword, search_time}]

3 统计数据

key 类型 说明 举例
count:art:reading zset 文章阅读数量 [{article_id, count}]
count:user:arts zset 用户发表文章数量 [{user_id, count}]
count:art:collecting zset 文章收藏数量 [{article_id, count}]
count:art:liking zset 文章点赞数量 [{article_id, count}]
count:art:comm zset 文章评论数量 [{article_id, count}]